import axios from 'axios';


/**
 * 上传单个文件
 * @param {File} file - 要上传的文件对象
 * @param {string} url - 上传的 API 地址
 * @param {Object} headers - 自定义请求头
 * @returns {Promise} - 返回 axios 的 Promise 对象
 */
export function uploadFile(file, url, headers = {}) {
	const formData = new FormData();
	formData.append('file', file);
	return axios.post(url, formData, {
		headers: {
			'Content-Type': 'multipart/form-data',
			...headers,
		},
	});
}

/**
 * 上传多个文件
 * @param {File[]} files - 要上传的文件数组
 * @param {string} url - 上传的 API 地址
 * @param {Object} headers - 自定义请求头
 * @returns {Promise} - 返回 axios 的 Promise 对象
 */
export function uploadFiles(files, url, headers = {}) {
	const formData = new FormData();
	files.forEach((file) => {
		formData.append('files', file);
	});

	return axios.post(url, formData, {
		headers: {
			'Content-Type': 'multipart/form-data',
			...headers,
		},
	});
}

/**
 * 将 Base64 字符串转换为 File 对象
 * @param {string} base64 - Base64 字符串
 * @param {string} filename - 文件名
 * @param {string} mimeType - 文件类型（如 'image/png'）
 * @returns {File} - 返回 File 对象
 */
export function base64ToFile(base64, filename, mimeType) {
	 // 去掉 Base64 字符串的前缀（如 "data:image/png;base64,"）
	  const base64Data = base64.split(',')[1] || base64;
	
	  // 解码 Base64 字符串
	  const byteCharacters = atob(base64Data);
	  const byteNumbers = new Array(byteCharacters.length);
	  for (let i = 0; i < byteCharacters.length; i++) {
	    byteNumbers[i] = byteCharacters.charCodeAt(i);
	  }
	  const byteArray = new Uint8Array(byteNumbers);
	  const blob = new Blob([byteArray], { type: mimeType });
	  return new File([blob], filename, { type: mimeType });
}